package com.ruoyi.wx.service;

import com.ruoyi.wx.entity.PtExp;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.wx.entity.dto.IndexEndExpDTO;
import com.ruoyi.wx.entity.dto.IndexEndExpScoreDTO;
import com.ruoyi.wx.entity.dto.IndexPrepExpDTO;
import com.ruoyi.wx.entity.dto.IndexTreatExpDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 实验表 服务类
 * </p>
 *
 * @author moxiu
 * @since 2022-03-04
 */
public interface IPtExpService extends IService<PtExp> {

    /**
     * 根据expId数组 获取所有的实验
     * @param list id数组
     * @return list
     */
    List<PtExp> getExpByList(long[] list);

    /**
     * 得到未开启和开启的实验
     * @param ids id数组
     * @return 集合
     */
    List<IndexPrepExpDTO> getPrepAndNoPrepExp(@Param("ids") long[] ids);


    /**
     * 上传实验的内容pdf
     * @param file pdf
     * @param expId 实验id
     */
    void uploadExpPdf(MultipartFile file, Long expId);

    /**
     * 获取待实验的数据
     * @param ids id数组
     * @return 集合
     */
    List<IndexTreatExpDTO> getTreatAndNoTreatExp(long[] ids);

    /**
     * 获取结束的实验
     * @return 集合
     */
    List<IndexEndExpDTO> getEndExp();

    /**
     * 获取结束实验的详细信息
     * @param expId 实验id
     * @return 集合
     */
    IndexEndExpScoreDTO getEndExpScore(Long expId);

}
